#include <REGX52.H>
#include "Delay.h"

// 注：这个是开发板左边的独立按键模块，矩阵键盘的可以自己找一下代码
// main函数里面有用到，这里不写示例了

/*******************************************************************************
 * 函 数 名     : 获取独立按键键码
 * 函数功能		 : 按下按键的键码，范围：0~4，无按键按下时返回值为0
 *******************************************************************************/
unsigned char Key()
{
	unsigned char KeyNumber = 0;
	int key1holdtime = 0; // 按键1按下时间计数

	if (P3_1 == 0)
	{
		Delay(20);
		while (1)
		{
			Delay(20);
			if (P3_1 == 1)
			{
				break;
			} // 按键抬起
			else
			{
				key1holdtime++;
			}
		}
		Delay(20);
		if (key1holdtime > 25) // 按键按下时间大于500ms，认为是长按
		{
			KeyNumber = 5; // 长按返回5
		}
		else
		{
			KeyNumber = 1; // 短按返回1
		}
	}

	if (P3_0 == 0)
	{
		Delay(20);
		while (P3_0 == 0);
		Delay(20);
		KeyNumber = 2;
	}
	if (P3_2 == 0)
	{
		Delay(20);
		while (P3_2 == 0);
		Delay(20);
		KeyNumber = 3;
	}
	if (P3_3 == 0)
	{
		Delay(20);
		while (P3_3 == 0);
		Delay(20);
		KeyNumber = 4;
	}

	return KeyNumber;
}
